package com.ktgj.hotel.domain.base;

import com.alibaba.fastjson.annotation.JSONField;
import com.ktgj.hotel.domain.elong.DrrRule;
import com.ktgj.hotel.domain.elong.ValueAdd;
import com.ktgj.hotel.domain.enums.HotelChannelEnumDto;
import com.ktgj.hotel.domain.vo.Promotion;
import com.ktgj.hotel.domain.vo.RegionResult;

import javax.xml.crypto.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Author: likeli
 * @Description:
 * @Data: Create in 2018/8/6 09:57
 * @Modificd_By:
 */
public class HotelDetailResponse {

    public HotelDetailResponse() {
        this.Hotels = new ArrayList<>();
    }

    /**
     * Count : 1
     * Hotels : [{"HotelId":"40101006","LowRate":1.5,"CurrencyCode":"RMB","Distance":0,"BookingRules":[{"BookingRuleId":94112,"TypeCode":"PerRoomPerName","DateType":"BookDay","StartDate":"2014-02-13T00:00:00 08:00","EndDate":"2064-02-13T00:00:00 08:00","StartHour":"00:00:00","EndHour":"23:59:00","Description":"酒店要求每个房间至少提供一名入住客人的姓名"}],"GuaranteeRules":[{"GuranteeRuleId":18915459,"DateType":"CheckInDay","StartDate":"2017-02-10T00:00:00 08:00","EndDate":"2018-02-10T00:00:00 08:00","WeekSet":"1,2,3,4,5,6,7,","IsTimeGuarantee":false,"StartTime":"18:00","EndTime":"06:00","IsTomorrow":true,"IsAmountGuarantee":false,"Amount":5,"GuaranteeType":"FirstNightCost","ChangeRule":"NoChange","Day":"2017-03-10T00:00:00 08:00","Time":"18:00","Hour":6,"Description":"担保条件：在17.02.10至18.02.10入住需要您提供信用卡担保。预订后无法变更取消，如未入住，将扣除第一晚房费作为违约金。"}],"PrepayRules":[{"PrepayRuleId":8,"DateType":"CheckInDay","StartDate":"2017-02-01T00:00:00 08:00","EndDate":"2020-12-31T00:00:00 08:00","WeekSet":"1,2,3,4,5,6,7,","ChangeRule":"PrepayNoChange","CashScaleFirstAfter":"FristNight","CashScaleFirstBefore":"FristNight","DateNum":"2017-03-20T00:00:00 08:00","Time":"18:00","DeductFeesAfter":1,"DeductFeesBefore":0,"DeductNumAfter":0,"DeductNumBefore":0,"Hour":24,"Hour2":0,"Description":"预付规则：在17.02.01 到20.12.31期间入住，需要提供信用卡预付全额房费。一经预订成功不可变更/取消。"}],"ValueAdds":[],"DrrRules":[],"Rooms":[{"RoomId":"1163","Name":"主楼标准客房invoice","RatePlans":[{"Status":true,"CustomerType":"All","CurrentAlloment":0,"InstantConfirmation":true,"IsLastMinuteSale":false,"StartTime":"00:00:00","EndTime":"23:59:00","TotalRate":1000,"AverageRate":1000,"CurrencyCode":"RMB","Coupon":0,"NightlyRates":[{"Member":1000,"Cost":-1,"Status":true,"AddBed":-1,"Date":"2017-03-21T00:00:00 08:00","BreakfastCount":0,"coupon":0}],"BookingRuleIds":"","PrepayRuleIds":"6","ValueAddIds":"","RoomTypeId":"1163","HotelCode":"40101006","InvoiceMode":"Hotel","BookingChannels":"1,2,3","CooperationType":1,"RatePlanId":484311,"RatePlanName":"预付RP3","MinAmount":1,"MinDays":1,"MaxDays":365,"PaymentType":"Prepay"}]}],"Gifts":[{"GiftId":1128,"StartDate":"2017-03-20T00:00:00 08:00","EndDate":"2017-03-20T00:00:00 08:00","DateType":"CheckinDate","WeekSet":"1,2,3,4,5,6,7","GiftContent":"礼包测试","GiftTypes":"","HourNumber":0,"HourType":"Hours24","WayOfGiving":"EveryRoom","WayOfGivingOther":"","Description":"2016年08月01日至2017年08月31日期间入住，每间房包含一次：礼包测试"}],"HAvailPolicys":[]}]
     */

    private int Count;//查询到的酒店总数
    private List<HotelsBean> Hotels;//酒店结果集

    public int getCount() {
        return Count;
    }

    public void setCount(int Count) {
        this.Count = Count;
    }

    public List<HotelsBean> getHotels() {
        return Hotels;
    }

    public void setHotels(List<HotelsBean> Hotels) {
        this.Hotels = Hotels;
    }

    /**
     * 修改订单返回值
     * */
    private Long OrderId;//订单编号
    private Date CancelTime;//最晚取消时间
    private BigDecimal GuaranteeAmount;//担保金额
    private String GuaranteeCurrencyCode;//担保金额的货币
    private BigDecimal TotalPrice;//订单总价
    private String CurrencyCode;//总价的货币
    private boolean IsInstantConfirm;//是否是即时确认
    private Date PaymentDeadlineTime;//支付最后期限
    private String PaymentMessage;//支付错误信息

    public Long getOrderId() {
        return OrderId;
    }

    public void setOrderId(Long orderId) {
        OrderId = orderId;
    }

    public Date getCancelTime() {
        return CancelTime;
    }

    public void setCancelTime(Date cancelTime) {
        CancelTime = cancelTime;
    }

    public BigDecimal getGuaranteeAmount() {
        return GuaranteeAmount;
    }

    public void setGuaranteeAmount(BigDecimal guaranteeAmount) {
        GuaranteeAmount = guaranteeAmount;
    }

    public String getGuaranteeCurrencyCode() {
        return GuaranteeCurrencyCode;
    }

    public void setGuaranteeCurrencyCode(String guaranteeCurrencyCode) {
        GuaranteeCurrencyCode = guaranteeCurrencyCode;
    }

    public BigDecimal getTotalPrice() {
        return TotalPrice;
    }

    public void setTotalPrice(BigDecimal totalPrice) {
        TotalPrice = totalPrice;
    }

    public String getCurrencyCode() {
        return CurrencyCode;
    }

    public void setCurrencyCode(String currencyCode) {
        CurrencyCode = currencyCode;
    }

    public boolean isInstantConfirm() {
        return IsInstantConfirm;
    }

    public void setInstantConfirm(boolean instantConfirm) {
        IsInstantConfirm = instantConfirm;
    }

    public Date getPaymentDeadlineTime() {
        return PaymentDeadlineTime;
    }

    public void setPaymentDeadlineTime(Date paymentDeadlineTime) {
        PaymentDeadlineTime = paymentDeadlineTime;
    }

    public String getPaymentMessage() {
        return PaymentMessage;
    }

    public void setPaymentMessage(String paymentMessage) {
        PaymentMessage = paymentMessage;
    }

    public static class HotelsBean {
        /**
         * HotelId : 40101006
         * LowRate : 1.5
         * CurrencyCode : RMB
         * Distance : 0
         * BookingRules : [{"BookingRuleId":94112,"TypeCode":"PerRoomPerName","DateType":"BookDay","StartDate":"2014-02-13T00:00:00 08:00","EndDate":"2064-02-13T00:00:00 08:00","StartHour":"00:00:00","EndHour":"23:59:00","Description":"酒店要求每个房间至少提供一名入住客人的姓名"}]
         * GuaranteeRules : [{"GuranteeRuleId":18915459,"DateType":"CheckInDay","StartDate":"2017-02-10T00:00:00 08:00","EndDate":"2018-02-10T00:00:00 08:00","WeekSet":"1,2,3,4,5,6,7,","IsTimeGuarantee":false,"StartTime":"18:00","EndTime":"06:00","IsTomorrow":true,"IsAmountGuarantee":false,"Amount":5,"GuaranteeType":"FirstNightCost","ChangeRule":"NoChange","Day":"2017-03-10T00:00:00 08:00","Time":"18:00","Hour":6,"Description":"担保条件：在17.02.10至18.02.10入住需要您提供信用卡担保。预订后无法变更取消，如未入住，将扣除第一晚房费作为违约金。"}]
         * PrepayRules : [{"PrepayRuleId":8,"DateType":"CheckInDay","StartDate":"2017-02-01T00:00:00 08:00","EndDate":"2020-12-31T00:00:00 08:00","WeekSet":"1,2,3,4,5,6,7,","ChangeRule":"PrepayNoChange","CashScaleFirstAfter":"FristNight","CashScaleFirstBefore":"FristNight","DateNum":"2017-03-20T00:00:00 08:00","Time":"18:00","DeductFeesAfter":1,"DeductFeesBefore":0,"DeductNumAfter":0,"DeductNumBefore":0,"Hour":24,"Hour2":0,"Description":"预付规则：在17.02.01 到20.12.31期间入住，需要提供信用卡预付全额房费。一经预订成功不可变更/取消。"}]
         * ValueAdds : []
         * DrrRules : []
         * Rooms : [{"RoomId":"1163","Name":"主楼标准客房invoice","RatePlans":[{"Status":true,"CustomerType":"All","CurrentAlloment":0,"InstantConfirmation":true,"IsLastMinuteSale":false,"StartTime":"00:00:00","EndTime":"23:59:00","TotalRate":1000,"AverageRate":1000,"CurrencyCode":"RMB","Coupon":0,"NightlyRates":[{"Member":1000,"Cost":-1,"Status":true,"AddBed":-1,"Date":"2017-03-21T00:00:00 08:00","BreakfastCount":0,"coupon":0}],"BookingRuleIds":"","PrepayRuleIds":"6","ValueAddIds":"","RoomTypeId":"1163","HotelCode":"40101006","InvoiceMode":"Hotel","BookingChannels":"1,2,3","CooperationType":1,"RatePlanId":484311,"RatePlanName":"预付RP3","MinAmount":1,"MinDays":1,"MaxDays":365,"PaymentType":"Prepay"}]}]
         * Gifts : [{"GiftId":1128,"StartDate":"2017-03-20T00:00:00 08:00","EndDate":"2017-03-20T00:00:00 08:00","DateType":"CheckinDate","WeekSet":"1,2,3,4,5,6,7","GiftContent":"礼包测试","GiftTypes":"","HourNumber":0,"HourType":"Hours24","WayOfGiving":"EveryRoom","WayOfGivingOther":"","Description":"2016年08月01日至2017年08月31日期间入住，每间房包含一次：礼包测试"}]
         * HAvailPolicys : []
         */

        private String HotelId;//酒店编号
        private String Facilities;//酒店设施
        private double LowRate;//最低价格
        private String CurrencyCode;//最低价格的货币
        private int Distance;//距离
        private List<BookingRulesBean> BookingRules;//预订规则
        private List<GuaranteeRulesBean> GuaranteeRules;//担保规则(不建议使用)
        private List<PrepayRulesBean> PrepayRules;//预付规则(不建议使用)
        private List<Images> Images;//酒店图片
        private List<ValueAdd> ValueAdds;//增值服务
        private List<DrrRule> DrrRules;//促销规则
        private List<RoomsBean> Rooms;//房型列表
        private List<DetailBean> Detail;//酒店信息
        private List<GiftsBean> Gifts;//送礼活动
        private List<?> HAvailPolicys;//酒店特殊信息提示
        private List<String> HotelFlags;//酒店特惠信息


        public String getFacilities() {
            return Facilities;
        }

        public void setFacilities(String facilities) {
            Facilities = facilities;
        }

        public String getHotelId() {
            return HotelId;
        }

        public void setHotelId(String HotelId) {
            this.HotelId = HotelId;
        }

        public double getLowRate() {
            return LowRate;
        }

        public void setLowRate(double LowRate) {
            this.LowRate = LowRate;
        }

        public String getCurrencyCode() {
            return CurrencyCode;
        }

        public void setCurrencyCode(String CurrencyCode) {
            this.CurrencyCode = CurrencyCode;
        }

        public int getDistance() {
            return Distance;
        }

        public void setDistance(int Distance) {
            this.Distance = Distance;
        }

        public List<BookingRulesBean> getBookingRules() {
            return BookingRules;
        }

        public void setBookingRules(List<BookingRulesBean> BookingRules) {
            this.BookingRules = BookingRules;
        }

        public List<GuaranteeRulesBean> getGuaranteeRules() {
            return GuaranteeRules;
        }

        public void setGuaranteeRules(List<GuaranteeRulesBean> GuaranteeRules) {
            this.GuaranteeRules = GuaranteeRules;
        }

        public List<PrepayRulesBean> getPrepayRules() {
            return PrepayRules;
        }

        public void setPrepayRules(List<PrepayRulesBean> PrepayRules) {
            this.PrepayRules = PrepayRules;
        }

        public List<HotelsBean.Images> getImages() {
            return Images;
        }

        public void setImages(List<HotelsBean.Images> images) {
            Images = images;
        }

        public List<ValueAdd> getValueAdds() {
            return ValueAdds;
        }

        public void setValueAdds(List<ValueAdd> valueAdds) {
            ValueAdds = valueAdds;
        }

        public List<DrrRule> getDrrRules() {
            return DrrRules;
        }

        public void setDrrRules(List<DrrRule> drrRules) {
            DrrRules = drrRules;
        }

        public List<RoomsBean> getRooms() {
            return Rooms;
        }

        public void setRooms(List<RoomsBean> Rooms) {
            this.Rooms = Rooms;
        }

        public List<DetailBean> getDetail() {
            return Detail;
        }

        public void setDetail(List<DetailBean> detail) {
            Detail = detail;
        }

        public List<GiftsBean> getGifts() {
            return Gifts;
        }

        public void setGifts(List<GiftsBean> Gifts) {
            this.Gifts = Gifts;
        }

        public List<?> getHAvailPolicys() {
            return HAvailPolicys;
        }

        public void setHAvailPolicys(List<?> HAvailPolicys) {
            this.HAvailPolicys = HAvailPolicys;
        }

        public List<String> getHotelFlags() {
            return HotelFlags;
        }

        public void setHotelFlags(List<String> hotelFlags) {
            HotelFlags = hotelFlags;
        }

        public static class ValueAdd {
            private String ValueAddId;//增值服务编号
            private String TypeCode;//业务代码
            private String Description;//描述
            private boolean IsInclude;//是否包含在房费中
            private int Amount;//包含的份数
            private String CurrencyCode;//货币代码
            private String PriceOption;//单价默认选项
            private BigDecimal Price;//单价
            private boolean IsExtAdd;//是否单加
            private String ExtOption;//单加单价默认选项
            private BigDecimal ExtPrice;//单加单价
            private Date StartDate;//开始日期
            private Date EndDate;//结束日期
            private String WeekSet;//周有效设置

            public String getValueAddId() {
                return ValueAddId;
            }

            public void setValueAddId(String valueAddId) {
                ValueAddId = valueAddId;
            }

            public String getTypeCode() {
                return TypeCode;
            }

            public void setTypeCode(String typeCode) {
                TypeCode = typeCode;
            }

            public String getDescription() {
                return Description;
            }

            public void setDescription(String description) {
                Description = description;
            }

            public boolean isInclude() {
                return IsInclude;
            }

            public void setInclude(boolean include) {
                IsInclude = include;
            }

            public int getAmount() {
                return Amount;
            }

            public void setAmount(int amount) {
                Amount = amount;
            }

            public String getCurrencyCode() {
                return CurrencyCode;
            }

            public void setCurrencyCode(String currencyCode) {
                CurrencyCode = currencyCode;
            }

            public String getPriceOption() {
                return PriceOption;
            }

            public void setPriceOption(String priceOption) {
                PriceOption = priceOption;
            }

            public BigDecimal getPrice() {
                return Price;
            }

            public void setPrice(BigDecimal price) {
                Price = price;
            }

            public boolean isExtAdd() {
                return IsExtAdd;
            }

            public void setExtAdd(boolean extAdd) {
                IsExtAdd = extAdd;
            }

            public String getExtOption() {
                return ExtOption;
            }

            public void setExtOption(String extOption) {
                ExtOption = extOption;
            }

            public BigDecimal getExtPrice() {
                return ExtPrice;
            }

            public void setExtPrice(BigDecimal extPrice) {
                ExtPrice = extPrice;
            }

            public Date getStartDate() {
                return StartDate;
            }

            public void setStartDate(Date startDate) {
                StartDate = startDate;
            }

            public Date getEndDate() {
                return EndDate;
            }

            public void setEndDate(Date endDate) {
                EndDate = endDate;
            }

            public String getWeekSet() {
                return WeekSet;
            }

            public void setWeekSet(String weekSet) {
                WeekSet = weekSet;
            }
        }

        public static class DrrRule {
            private String DrrRuleId;//促销规则编号
            private String TypeCode;//产品促销规则类型代码
            private String Description;//描述
            private String DateType;//日期类型
            private Data StartDate;//促销生效开始日期
            private Date EndDate;//促销生效结束日期
            private int DayNum;//提前几天
            private int CheckInNum;//连住几天
            private int EveryCheckInNum;//每连住几晚
            private int LastDayNum;//最后几天
            private int WhichDayNum;//第几晚及以后优惠
            private String CashScale;//按金额或按比例来优惠
            private BigDecimal DeductNum;//按金额或比例优惠的数值
            private String WeekSet;//星期有效设置
            private String FeeType;//价格类型

            public String getDrrRuleId() {
                return DrrRuleId;
            }

            public void setDrrRuleId(String drrRuleId) {
                DrrRuleId = drrRuleId;
            }

            public String getTypeCode() {
                return TypeCode;
            }

            public void setTypeCode(String typeCode) {
                TypeCode = typeCode;
            }

            public String getDescription() {
                return Description;
            }

            public void setDescription(String description) {
                Description = description;
            }

            public String getDateType() {
                return DateType;
            }

            public void setDateType(String dateType) {
                DateType = dateType;
            }

            public Data getStartDate() {
                return StartDate;
            }

            public void setStartDate(Data startDate) {
                StartDate = startDate;
            }

            public Date getEndDate() {
                return EndDate;
            }

            public void setEndDate(Date endDate) {
                EndDate = endDate;
            }

            public int getDayNum() {
                return DayNum;
            }

            public void setDayNum(int dayNum) {
                DayNum = dayNum;
            }

            public int getCheckInNum() {
                return CheckInNum;
            }

            public void setCheckInNum(int checkInNum) {
                CheckInNum = checkInNum;
            }

            public int getEveryCheckInNum() {
                return EveryCheckInNum;
            }

            public void setEveryCheckInNum(int everyCheckInNum) {
                EveryCheckInNum = everyCheckInNum;
            }

            public int getLastDayNum() {
                return LastDayNum;
            }

            public void setLastDayNum(int lastDayNum) {
                LastDayNum = lastDayNum;
            }

            public int getWhichDayNum() {
                return WhichDayNum;
            }

            public void setWhichDayNum(int whichDayNum) {
                WhichDayNum = whichDayNum;
            }

            public String getCashScale() {
                return CashScale;
            }

            public void setCashScale(String cashScale) {
                CashScale = cashScale;
            }

            public BigDecimal getDeductNum() {
                return DeductNum;
            }

            public void setDeductNum(BigDecimal deductNum) {
                DeductNum = deductNum;
            }

            public String getWeekSet() {
                return WeekSet;
            }

            public void setWeekSet(String weekSet) {
                WeekSet = weekSet;
            }

            public String getFeeType() {
                return FeeType;
            }

            public void setFeeType(String feeType) {
                FeeType = feeType;
            }
        }


        public static class BookingRulesBean {
            /**
             * BookingRuleId : 94112
             * TypeCode : PerRoomPerName
             * DateType : BookDay
             * StartDate : 2014-02-13T00:00:00 08:00
             * EndDate : 2064-02-13T00:00:00 08:00
             * StartHour : 00:00:00
             * EndHour : 23:59:00
             * Description : 酒店要求每个房间至少提供一名入住客人的姓名
             */

            private int BookingRuleId;//预订规则编号
            private String TypeCode;//规则类型
            private String DateType;//日期类型
            private String StartDate;//开始日期
            private String EndDate;//结束日期
            private String StartHour;//每天开始时间
            private String EndHour;//每天结束时间
            private String Description;//描述

            public int getBookingRuleId() {
                return BookingRuleId;
            }

            public void setBookingRuleId(int BookingRuleId) {
                this.BookingRuleId = BookingRuleId;
            }

            public String getTypeCode() {
                return TypeCode;
            }

            public void setTypeCode(String TypeCode) {
                this.TypeCode = TypeCode;
            }

            public String getDateType() {
                return DateType;
            }

            public void setDateType(String DateType) {
                this.DateType = DateType;
            }

            public String getStartDate() {
                return StartDate;
            }

            public void setStartDate(String StartDate) {
                this.StartDate = StartDate;
            }

            public String getEndDate() {
                return EndDate;
            }

            public void setEndDate(String EndDate) {
                this.EndDate = EndDate;
            }

            public String getStartHour() {
                return StartHour;
            }

            public void setStartHour(String StartHour) {
                this.StartHour = StartHour;
            }

            public String getEndHour() {
                return EndHour;
            }

            public void setEndHour(String EndHour) {
                this.EndHour = EndHour;
            }

            public String getDescription() {
                return Description;
            }

            public void setDescription(String Description) {
                this.Description = Description;
            }
        }

        public static class GuaranteeRulesBean {
            /**
             * GuranteeRuleId : 18915459
             * DateType : CheckInDay
             * StartDate : 2017-02-10T00:00:00 08:00
             * EndDate : 2018-02-10T00:00:00 08:00
             * WeekSet : 1,2,3,4,5,6,7,
             * IsTimeGuarantee : false
             * StartTime : 18:00
             * EndTime : 06:00
             * IsTomorrow : true
             * IsAmountGuarantee : false
             * Amount : 5
             * GuaranteeType : FirstNightCost
             * ChangeRule : NoChange
             * Day : 2017-03-10T00:00:00 08:00
             * Time : 18:00
             * Hour : 6
             * Description : 担保条件：在17.02.10至18.02.10入住需要您提供信用卡担保。预订后无法变更取消，如未入住，将扣除第一晚房费作为违约金。
             */

            private long GuranteeRuleId;//担保规则编号
            private String DateType;//日期类型
            private String StartDate;//开始日期
            private String EndDate;//结束日期
            private String WeekSet;//周有效天数
            private boolean TimeGuarantee;//是否到店时间担保
            private String StartTime;//到店担保开始时间
            private String EndTime;//到店担保结束时间
            private boolean Tomorrow;//到店担保的结束时间是否为第二天
            private boolean AmountGuarantee;//是否房量担保
            private int Amount;//担保的房间数,预定几间房及以上要担保
            private String GuaranteeType;//担保类型
            private String ChangeRule;//变更规则
            private String Day;//变更规则
            private String Time;//时间参数
            private int Hour;//小时参数
            private String Description;//描述

            public long getGuranteeRuleId() {
                return GuranteeRuleId;
            }

            public void setGuranteeRuleId(long guranteeRuleId) {
                GuranteeRuleId = guranteeRuleId;
            }

            public String getDateType() {
                return DateType;
            }

            public void setDateType(String dateType) {
                DateType = dateType;
            }

            public String getStartDate() {
                return StartDate;
            }

            public void setStartDate(String startDate) {
                StartDate = startDate;
            }

            public String getEndDate() {
                return EndDate;
            }

            public void setEndDate(String endDate) {
                EndDate = endDate;
            }

            public String getWeekSet() {
                return WeekSet;
            }

            public void setWeekSet(String weekSet) {
                WeekSet = weekSet;
            }

            @JSONField(name = "IsTimeGuarantee")
            public boolean isTimeGuarantee() {
                return TimeGuarantee;
            }

            @JSONField(name = "IsTimeGuarantee")
            public void setTimeGuarantee(boolean timeGuarantee) {
                TimeGuarantee = timeGuarantee;
            }

            public String getStartTime() {
                return StartTime;
            }

            public void setStartTime(String startTime) {
                StartTime = startTime;
            }

            public String getEndTime() {
                return EndTime;
            }

            public void setEndTime(String endTime) {
                EndTime = endTime;
            }

            @JSONField(name = "IsTomorrow")
            public boolean isTomorrow() {
                return Tomorrow;
            }

            @JSONField(name = "IsTomorrow")
            public void setTomorrow(boolean tomorrow) {
                Tomorrow = tomorrow;
            }

            @JSONField(name = "IsAmountGuarantee")
            public boolean isAmountGuarantee() {
                return AmountGuarantee;
            }

            @JSONField(name = "IsAmountGuarantee")
            public void setAmountGuarantee(boolean amountGuarantee) {
                AmountGuarantee = amountGuarantee;
            }

            public int getAmount() {
                return Amount;
            }

            public void setAmount(int amount) {
                Amount = amount;
            }

            public String getGuaranteeType() {
                return GuaranteeType;
            }

            public void setGuaranteeType(String guaranteeType) {
                GuaranteeType = guaranteeType;
            }

            public String getChangeRule() {
                return ChangeRule;
            }

            public void setChangeRule(String changeRule) {
                ChangeRule = changeRule;
            }

            public String getDay() {
                return Day;
            }

            public void setDay(String day) {
                Day = day;
            }

            public String getTime() {
                return Time;
            }

            public void setTime(String time) {
                Time = time;
            }

            public int getHour() {
                return Hour;
            }

            public void setHour(int hour) {
                Hour = hour;
            }

            public String getDescription() {
                return Description;
            }

            public void setDescription(String description) {
                Description = description;
            }
        }

        public static class PrepayRulesBean {
            /**
             * PrepayRuleId : 8
             * DateType : CheckInDay
             * StartDate : 2017-02-01T00:00:00 08:00
             * EndDate : 2020-12-31T00:00:00 08:00
             * WeekSet : 1,2,3,4,5,6,7,
             * ChangeRule : PrepayNoChange
             * CashScaleFirstAfter : FristNight
             * CashScaleFirstBefore : FristNight
             * DateNum : 2017-03-20T00:00:00 08:00
             * Time : 18:00
             * DeductFeesAfter : 1
             * DeductFeesBefore : 0
             * DeductNumAfter : 0
             * DeductNumBefore : 0
             * Hour : 24
             * Hour2 : 0
             * Description : 预付规则：在17.02.01 到20.12.31期间入住，需要提供信用卡预付全额房费。一经预订成功不可变更/取消。
             */

            private long PrepayRuleId;
            private String DateType;
            private String StartDate;
            private String EndDate;
            private String WeekSet;
            private String ChangeRule;
            private String CashScaleFirstAfter;
            private String CashScaleFirstBefore;
            private String DateNum;
            private String Time;
            private int DeductFeesAfter;
            private int DeductFeesBefore;
            private int DeductNumAfter;
            private int DeductNumBefore;
            private int Hour;
            private int Hour2;
            private String Description;

            public long getPrepayRuleId() {
                return PrepayRuleId;
            }

            public void setPrepayRuleId(long PrepayRuleId) {
                this.PrepayRuleId = PrepayRuleId;
            }

            public String getDateType() {
                return DateType;
            }

            public void setDateType(String DateType) {
                this.DateType = DateType;
            }

            public String getStartDate() {
                return StartDate;
            }

            public void setStartDate(String StartDate) {
                this.StartDate = StartDate;
            }

            public String getEndDate() {
                return EndDate;
            }

            public void setEndDate(String EndDate) {
                this.EndDate = EndDate;
            }

            public String getWeekSet() {
                return WeekSet;
            }

            public void setWeekSet(String WeekSet) {
                this.WeekSet = WeekSet;
            }

            public String getChangeRule() {
                return ChangeRule;
            }

            public void setChangeRule(String ChangeRule) {
                this.ChangeRule = ChangeRule;
            }

            public String getCashScaleFirstAfter() {
                return CashScaleFirstAfter;
            }

            public void setCashScaleFirstAfter(String CashScaleFirstAfter) {
                this.CashScaleFirstAfter = CashScaleFirstAfter;
            }

            public String getCashScaleFirstBefore() {
                return CashScaleFirstBefore;
            }

            public void setCashScaleFirstBefore(String CashScaleFirstBefore) {
                this.CashScaleFirstBefore = CashScaleFirstBefore;
            }

            public String getDateNum() {
                return DateNum;
            }

            public void setDateNum(String DateNum) {
                this.DateNum = DateNum;
            }

            public String getTime() {
                return Time;
            }

            public void setTime(String Time) {
                this.Time = Time;
            }

            public int getDeductFeesAfter() {
                return DeductFeesAfter;
            }

            public void setDeductFeesAfter(int DeductFeesAfter) {
                this.DeductFeesAfter = DeductFeesAfter;
            }

            public int getDeductFeesBefore() {
                return DeductFeesBefore;
            }

            public void setDeductFeesBefore(int DeductFeesBefore) {
                this.DeductFeesBefore = DeductFeesBefore;
            }

            public int getDeductNumAfter() {
                return DeductNumAfter;
            }

            public void setDeductNumAfter(int DeductNumAfter) {
                this.DeductNumAfter = DeductNumAfter;
            }

            public int getDeductNumBefore() {
                return DeductNumBefore;
            }

            public void setDeductNumBefore(int DeductNumBefore) {
                this.DeductNumBefore = DeductNumBefore;
            }

            public int getHour() {
                return Hour;
            }

            public void setHour(int Hour) {
                this.Hour = Hour;
            }

            public int getHour2() {
                return Hour2;
            }

            public void setHour2(int Hour2) {
                this.Hour2 = Hour2;
            }

            public String getDescription() {
                return Description;
            }

            public void setDescription(String Description) {
                this.Description = Description;
            }
        }

        public static class Images {

            private int Type;
            private String IsCoverImage;
            private String IsRoomCoverImage;
            private String RoomId;
            private List<Locations> Locations;
            private String AuthorType;

            public void setType(int Type) {
                this.Type = Type;
            }

            public int getType() {
                return Type;
            }

            public void setIsCoverImage(String IsCoverImage) {
                this.IsCoverImage = IsCoverImage;
            }

            public String getIsCoverImage() {
                return IsCoverImage;
            }

            public void setLocations(List<Locations> Locations) {
                this.Locations = Locations;
            }

            public List<Locations> getLocations() {
                return Locations;
            }

            public void setAuthorType(String AuthorType) {
                this.AuthorType = AuthorType;
            }

            public String getAuthorType() {
                return AuthorType;
            }

            public String getIsRoomCoverImage() {
                return IsRoomCoverImage = "".equals(IsRoomCoverImage) || IsRoomCoverImage == null ? "false" : "true";

            }

            public void setIsRoomCoverImage(String isRoomCoverImage) {
                IsRoomCoverImage = isRoomCoverImage;
            }

            public String getRoomId() {
                return RoomId;
            }

            public void setRoomId(String roomId) {
                RoomId = roomId;
            }

            public static class Locations {

                private String WaterMark;
                private int SizeType;
                private String Url;

                public void setWaterMark(String WaterMark) {
                    this.WaterMark = WaterMark;
                }

                public String getWaterMark() {
                    return WaterMark;
                }

                public void setSizeType(int SizeType) {
                    this.SizeType = SizeType;
                }

                public int getSizeType() {
                    return SizeType;
                }

                public void setUrl(String Url) {
                    this.Url = Url;
                }

                public String getUrl() {
                    return Url;
                }

            }

        }

        public static class RoomsBean {
            /**
             * RoomId : 1163
             * Name : 主楼标准客房invoice
             * RatePlans : [{"Status":true,"CustomerType":"All","CurrentAlloment":0,"InstantConfirmation":true,"IsLastMinuteSale":false,"StartTime":"00:00:00","EndTime":"23:59:00","TotalRate":1000,"AverageRate":1000,"CurrencyCode":"RMB","Coupon":0,"NightlyRates":[{"Member":1000,"Cost":-1,"Status":true,"AddBed":-1,"Date":"2017-03-21T00:00:00 08:00","BreakfastCount":0,"coupon":0}],"BookingRuleIds":"","PrepayRuleIds":"6","ValueAddIds":"","RoomTypeId":"1163","HotelCode":"40101006","InvoiceMode":"Hotel","BookingChannels":"1,2,3","CooperationType":1,"RatePlanId":484311,"RatePlanName":"预付RP3","MinAmount":1,"MinDays":1,"MaxDays":365,"PaymentType":"Prepay"}]
             */

            private String RoomId;//展示房型编号
            private String Name;//房间英文名
            private List<RatePlansBean> RatePlans;//产品信息
            private String ImageUrl;//图片地址
            private String Floor;//楼层
            private String Description;//房间描述
            private String Area;//房间描述
            private String BedType;//床型
            private String BedDesc;//床型描述
            private String WindowType;//窗户类型描述
            private String Capcity;//可容纳人数
            private String Broadnet;//上网情况


            public String getBroadnet() {
                return Broadnet;
            }

            public void setBroadnet(String broadnet) {
                Broadnet = broadnet;
            }

            public String getCapcity() {
                return Capcity;
            }

            public void setCapcity(String capcity) {
                Capcity = capcity;
            }

            public String getBedType() {
                return BedType;
            }

            public void setBedType(String bedType) {
                BedType = bedType;
            }

            public String getBedDesc() {
                return BedDesc;
            }

            public void setBedDesc(String bedDesc) {
                BedDesc = bedDesc;
            }

            public String getArea() {
                return Area;
            }

            public void setArea(String area) {
                Area = area;
            }

            public String getRoomId() {
                return RoomId;
            }

            public void setRoomId(String RoomId) {
                this.RoomId = RoomId;
            }

            public String getName() {
                return Name;
            }

            public void setName(String Name) {
                this.Name = Name;
            }

            public List<RatePlansBean> getRatePlans() {
                return RatePlans;
            }

            public void setRatePlans(List<RatePlansBean> RatePlans) {
                this.RatePlans = RatePlans;
            }

            public String getImageUrl() {
                return ImageUrl;
            }

            public void setImageUrl(String imageUrl) {
                ImageUrl = imageUrl;
            }

            public String getFloor() {
                return Floor;
            }

            public void setFloor(String floor) {
                Floor = floor;
            }

            public String getDescription() {
                return Description;
            }

            public void setDescription(String description) {
                Description = description;
            }

            public String getWindowType() {
                return WindowType;
            }

            public void setWindowType(String windowType) {
                WindowType = windowType;
            }

            public static class RatePlansBean {
                /**
                 * Status : true
                 * CustomerType : All
                 * CurrentAlloment : 0
                 * InstantConfirmation : true
                 * IsLastMinuteSale : false
                 * StartTime : 00:00:00
                 * EndTime : 23:59:00
                 * TotalRate : 1000
                 * AverageRate : 1000
                 * CurrencyCode : RMB
                 * Coupon : 0
                 * NightlyRates : [{"Member":1000,"Cost":-1,"Status":true,"AddBed":-1,"Date":"2017-03-21T00:00:00 08:00","BreakfastCount":0,"coupon":0}]
                 * BookingRuleIds :
                 * PrepayRuleIds : 6
                 * ValueAddIds :
                 * RoomTypeId : 1163
                 * HotelCode : 40101006
                 * InvoiceMode : Hotel
                 * BookingChannels : 1,2,3
                 * CooperationType : 1
                 * RatePlanId : 484311
                 * RatePlanName : 预付RP3
                 * MinAmount : 1
                 * MinDays : 1
                 * MaxDays : 365
                 * PaymentType : Prepay
                 * IsPromotion: false
                 * PromotionFlags:"PromotionFlags": [
                 * {
                 * "PromotionId": 5,
                 * "PromotionTag": "天天特价"
                 * }
                 * ],
                 * <p>
                 * Identification :0-无特殊验证要求（默认值）
                 * 1-整个订单至少传一个身份证
                 * 2-订单中每个房间至少传一个证件
                 * 3-订单中每个房间至少传一个身份证
                 * 4-每个客人传一个身份证
                 */


                private HotelChannelEnumDto.CustomerType.ElongCustomerType CustomerType;
                private int CurrentAlloment;//房量限额
                private boolean InstantConfirmation;//是否支持即时确认
                private boolean IsLastMinuteSale;//是否今日特价（即尾房）
                private boolean Status;//销售状态
                private String IsPromotion;//是否促销

                private Meals Meals;//新餐食节点

                private String StartTime;//尾房开始时间
                private String EndTime;//尾房结束时间
                private BigDecimal TotalRate;//总价
                private BigDecimal AverageRate;//日均价
                private String CurrencyCode;//货币
                private BigDecimal Coupon;//优惠券
                private String BookingRuleIds;//对应的预订规则编号
                private String GuaranteeRuleIds;//对应的担保规则编号
                private String PrepayRuleIds;//对应的预付规则编号
                private String ValueAddIds;//对应的增值服务编号
                private String RoomTypeId;//销售房型编号
                private String HotelCode;//供应商酒店编码
                private String InvoiceMode;//预付产品发票模式
                private String BookingChannels;//产品可以展示销售的渠道
                private int CooperationType;//酒店签约类型
                private long RatePlanId;//产品编号
                private String RatePlanName;//产品名称
                private int MinAmount;//预定最少数量
                private int MinDays;//最少入住天数
                private int MaxDays;//最多入住天数
                private int MaxCheckinRooms;//最多预订间数
                private HotelChannelEnumDto.PaymentType PaymentType;//付款类型
                private String ProductTypes;//产品特性类型
                private String xBedType;//床型
                private String xStayPeopleNum;//可入住人数

                private List<NightlyRatesBean> NightlyRates;//每天价格数组
                private List<PromotionFlagBean> PromotionFlags;//促销活动集合

                private int Identification;//身份信息验证类型
                private String earliestToliveTime;//可住开始时间

                private String majia_id;//产品唯一标识
                private String Littlemajiaid;//产品唯一标识（API成单使用）
                private String GoodsUniqId;//商品唯一标识
                private String ChangeRule;//变更规则
                private String PkgProductIds;//礼包套餐ID
                private List<UsedPromotionValues> usedPromotionValuesList;//使用的红包类型
                private List<DayPromotions> dayPromotionsList;//每日促销明细集合

                private PrepayResult PrepayResult;//预付结果节点
                private GuaranteeResult guaranteeResult;//现付结果节点

                public List<DayPromotions> getDayPromotionsList() {
                    return dayPromotionsList;
                }

                public void setDayPromotionsList(List<DayPromotions> dayPromotionsList) {
                    this.dayPromotionsList = dayPromotionsList;
                }

                public List<UsedPromotionValues> getUsedPromotionValuesList() {
                    return usedPromotionValuesList;
                }

                public void setUsedPromotionValuesList(List<UsedPromotionValues> usedPromotionValuesList) {
                    this.usedPromotionValuesList = usedPromotionValuesList;
                }

                public PrepayResult getPrepayResult() {
                    return PrepayResult;
                }

                public void setPrepayResult(PrepayResult prepayResult) {
                    PrepayResult = prepayResult;
                }

                public boolean isStatus() {
                    return Status;
                }

                public String getMajia_id() {
                    return majia_id;
                }

                public void setMajia_id(String majia_id) {
                    this.majia_id = majia_id;
                }

                public String getLittlemajiaid() {
                    return Littlemajiaid;
                }

                public void setLittlemajiaid(String littlemajiaid) {
                    Littlemajiaid = littlemajiaid;
                }

                public String getGoodsUniqId() {
                    return GoodsUniqId;
                }

                public void setGoodsUniqId(String goodsUniqId) {
                    GoodsUniqId = goodsUniqId;
                }

                public String getEarliestToliveTime() {
                    return earliestToliveTime;
                }

                public void setEarliestToliveTime(String earliestToliveTime) {
                    this.earliestToliveTime = earliestToliveTime;
                }

                public RatePlansBean.Meals getMeals() {
                    return Meals;
                }

                public void setMeals(RatePlansBean.Meals meals) {
                    Meals = meals;
                }

                public int getMaxCheckinRooms() {
                    return MaxCheckinRooms;
                }

                public void setMaxCheckinRooms(int maxCheckinRooms) {
                    MaxCheckinRooms = maxCheckinRooms;
                }

                public String getGuaranteeRuleIds() {
                    return GuaranteeRuleIds;
                }

                public void setGuaranteeRuleIds(String guaranteeRuleIds) {
                    GuaranteeRuleIds = guaranteeRuleIds;
                }

                public String getProductTypes() {
                    return ProductTypes;
                }

                public void setProductTypes(String productTypes) {
                    ProductTypes = productTypes;
                }

                public String getxStayPeopleNum() {
                    return xStayPeopleNum;
                }

                public void setxStayPeopleNum(String xStayPeopleNum) {
                    this.xStayPeopleNum = xStayPeopleNum;
                }

                public List<PromotionFlagBean> getPromotionFlags() {
                    return PromotionFlags;
                }

                public void setPromotionFlags(List<PromotionFlagBean> promotionFlags) {
                    PromotionFlags = promotionFlags;
                }

                public String getxBedType() {
                    return xBedType;
                }

                public void setxBedType(String xBedType) {
                    this.xBedType = xBedType;
                }

                public boolean getStatus() {
                    return Status;
                }

                public void setStatus(boolean Status) {
                    this.Status = Status;
                }


                public HotelChannelEnumDto.CustomerType.ElongCustomerType getCustomerType() {
                    return CustomerType;
                }

                public void setCustomerType(HotelChannelEnumDto.CustomerType.ElongCustomerType customerType) {
                    CustomerType = customerType;
                }

                public boolean isLastMinuteSale() {
                    return IsLastMinuteSale;
                }

                public void setLastMinuteSale(boolean lastMinuteSale) {
                    IsLastMinuteSale = lastMinuteSale;
                }

                public int getCurrentAlloment() {
                    return CurrentAlloment;
                }

                public void setCurrentAlloment(int CurrentAlloment) {
                    this.CurrentAlloment = CurrentAlloment;
                }

                public boolean isInstantConfirmation() {
                    return InstantConfirmation;
                }

                public void setInstantConfirmation(boolean InstantConfirmation) {
                    this.InstantConfirmation = InstantConfirmation;
                }


                public String getIsPromotion() {
                    return IsPromotion;
                }

                public void setIsPromotion(String isPromotion) {
                    IsPromotion = isPromotion;
                }

                public boolean isIsLastMinuteSale() {
                    return IsLastMinuteSale;
                }


                public void setIsLastMinuteSale(boolean IsLastMinuteSale) {
                    this.IsLastMinuteSale = IsLastMinuteSale;
                }

                public String getStartTime() {
                    return StartTime;
                }

                public void setStartTime(String StartTime) {
                    this.StartTime = StartTime;
                }

                public String getEndTime() {
                    return EndTime;
                }

                public void setEndTime(String EndTime) {
                    this.EndTime = EndTime;
                }

                public BigDecimal getTotalRate() {
                    return TotalRate;
                }

                public void setTotalRate(BigDecimal TotalRate) {
                    this.TotalRate = TotalRate;
                }

                public BigDecimal getAverageRate() {
                    return AverageRate;
                }

                public void setAverageRate(BigDecimal averageRate) {
                    AverageRate = averageRate;
                }

                public String getCurrencyCode() {
                    return CurrencyCode;
                }

                public void setCurrencyCode(String CurrencyCode) {
                    this.CurrencyCode = CurrencyCode;
                }

                public BigDecimal getCoupon() {
                    return Coupon;
                }

                public void setCoupon(BigDecimal Coupon) {
                    this.Coupon = Coupon;
                }

                public String getBookingRuleIds() {
                    return BookingRuleIds;
                }

                public void setBookingRuleIds(String BookingRuleIds) {
                    this.BookingRuleIds = BookingRuleIds;
                }

                public String getPrepayRuleIds() {
                    return PrepayRuleIds;
                }

                public void setPrepayRuleIds(String PrepayRuleIds) {
                    this.PrepayRuleIds = PrepayRuleIds;
                }

                public String getValueAddIds() {
                    return ValueAddIds;
                }

                public void setValueAddIds(String ValueAddIds) {
                    this.ValueAddIds = ValueAddIds;
                }

                public String getRoomTypeId() {
                    return RoomTypeId;
                }

                public void setRoomTypeId(String RoomTypeId) {
                    this.RoomTypeId = RoomTypeId;
                }

                public String getHotelCode() {
                    return HotelCode;
                }

                public void setHotelCode(String HotelCode) {
                    this.HotelCode = HotelCode;
                }

                public String getInvoiceMode() {
                    return InvoiceMode;
                }

                public void setInvoiceMode(String InvoiceMode) {
                    this.InvoiceMode = InvoiceMode;
                }

                public String getBookingChannels() {
                    return BookingChannels;
                }

                public void setBookingChannels(String BookingChannels) {
                    this.BookingChannels = BookingChannels;
                }

                public int getCooperationType() {
                    return CooperationType;
                }

                public void setCooperationType(int CooperationType) {
                    this.CooperationType = CooperationType;
                }

                public long getRatePlanId() {
                    return RatePlanId;
                }

                public void setRatePlanId(long RatePlanId) {
                    this.RatePlanId = RatePlanId;
                }

                public String getRatePlanName() {
                    return RatePlanName;
                }

                public void setRatePlanName(String RatePlanName) {
                    this.RatePlanName = RatePlanName;
                }

                public int getMinAmount() {
                    return MinAmount;
                }

                public void setMinAmount(int MinAmount) {
                    this.MinAmount = MinAmount;
                }

                public int getMinDays() {
                    return MinDays;
                }

                public void setMinDays(int MinDays) {
                    this.MinDays = MinDays;
                }

                public int getMaxDays() {
                    return MaxDays;
                }

                public void setMaxDays(int MaxDays) {
                    this.MaxDays = MaxDays;
                }

                public int getIdentification() {
                    return Identification;
                }

                public void setIdentification(int identification) {
                    Identification = identification;
                }

                public HotelChannelEnumDto.PaymentType getPaymentType() {
                    return PaymentType;
                }

                public void setPaymentType(HotelChannelEnumDto.PaymentType paymentType) {
                    PaymentType = paymentType;
                }

                public List<NightlyRatesBean> getNightlyRates() {
                    return NightlyRates;
                }

                public void setNightlyRates(List<NightlyRatesBean> NightlyRates) {
                    this.NightlyRates = NightlyRates;
                }

                public String getChangeRule() {
                    return ChangeRule;
                }

                public void setChangeRule(String changeRule) {
                    ChangeRule = changeRule;
                }

                public String getPkgProductIds() {
                    return PkgProductIds;
                }

                public void setPkgProductIds(String pkgProductIds) {
                    PkgProductIds = pkgProductIds;
                }

                public GuaranteeResult getGuaranteeResult() {
                    return guaranteeResult;
                }

                public void setGuaranteeResult(GuaranteeResult guaranteeResult) {
                    this.guaranteeResult = guaranteeResult;
                }

                public static class GuaranteeResult {
                    private double MoneyArrivalTime;//到店时间触发时的担保金额
                    private String ArrivalTime;//需要担保的到店时间(格式：hh:mm)
                    private int RoomCount;//房量担保分割点
                    private int GuaranteeType;//担保类型
                    private double GuaranteeMoney;//当前条件下需要担保的金额
                    private boolean NeedGuarantee;//当前条件下是否需要担保
                    private long CancelTime;//可以取消的时间点，单位秒
                    private String CancelDescription;//取消规则详细描述
                    private String CancelTag;//取消规则标签
                    private int CancelType;//取消类型

                    public double getMoneyArrivalTime() {
                        return MoneyArrivalTime;
                    }

                    public void setMoneyArrivalTime(double moneyArrivalTime) {
                        MoneyArrivalTime = moneyArrivalTime;
                    }

                    public String getArrivalTime() {
                        return ArrivalTime;
                    }

                    public void setArrivalTime(String arrivalTime) {
                        ArrivalTime = arrivalTime;
                    }

                    public int getRoomCount() {
                        return RoomCount;
                    }

                    public void setRoomCount(int roomCount) {
                        RoomCount = roomCount;
                    }

                    public int getGuaranteeType() {
                        return GuaranteeType;
                    }

                    public void setGuaranteeType(int guaranteeType) {
                        GuaranteeType = guaranteeType;
                    }

                    public double getGuaranteeMoney() {
                        return GuaranteeMoney;
                    }

                    public void setGuaranteeMoney(double guaranteeMoney) {
                        GuaranteeMoney = guaranteeMoney;
                    }

                    public boolean isNeedGuarantee() {
                        return NeedGuarantee;
                    }

                    public void setNeedGuarantee(boolean needGuarantee) {
                        NeedGuarantee = needGuarantee;
                    }

                    public long getCancelTime() {
                        return CancelTime;
                    }

                    public void setCancelTime(long cancelTime) {
                        CancelTime = cancelTime;
                    }

                    public String getCancelDescription() {
                        return CancelDescription;
                    }

                    public void setCancelDescription(String cancelDescription) {
                        CancelDescription = cancelDescription;
                    }

                    public String getCancelTag() {
                        return CancelTag;
                    }

                    public void setCancelTag(String cancelTag) {
                        CancelTag = cancelTag;
                    }

                    public int getCancelType() {
                        return CancelType;
                    }

                    public void setCancelType(int cancelType) {
                        CancelType = cancelType;
                    }
                }

                public static class DayPromotions {
                    private List<Promotions> promotions;//每日促销明细

                    public List<Promotions> getPromotions() {
                        return promotions;
                    }

                    public void setPromotions(List<Promotions> promotions) {
                        this.promotions = promotions;
                    }
                }

                public static class Promotions {
                    private int PromotionType;//促销类型
                    private BigDecimal PriceDiscountValue;//卖价优惠金额
                    private Long PromotionId;//促销活动Id

                    public int getPromotionType() {
                        return PromotionType;
                    }

                    public void setPromotionType(int promotionType) {
                        PromotionType = promotionType;
                    }

                    public BigDecimal getPriceDiscountValue() {
                        return PriceDiscountValue;
                    }

                    public void setPriceDiscountValue(BigDecimal priceDiscountValue) {
                        PriceDiscountValue = priceDiscountValue;
                    }

                    public Long getPromotionId() {
                        return PromotionId;
                    }

                    public void setPromotionId(Long promotionId) {
                        PromotionId = promotionId;
                    }
                }

                public static class UsedPromotionValues {
                    private int PromotionTypeId;//促销类型id
                    private BigDecimal PromotionValue;//优惠金额

                    public int getPromotionTypeId() {
                        return PromotionTypeId;
                    }

                    public void setPromotionTypeId(int promotionTypeId) {
                        PromotionTypeId = promotionTypeId;
                    }

                    public BigDecimal getPromotionValue() {
                        return PromotionValue;
                    }

                    public void setPromotionValue(BigDecimal promotionValue) {
                        PromotionValue = promotionValue;
                    }
                }

                public static class PrepayResult {
                    private String CancelDescription;//取消规则
                    private int CancelType;//取消类型
                    private boolean LadderVouch;//是否使用阶梯担保规则
                    private List<LadderParse> LadderParseList;//取消规则明细
                    private String CancelTag;//取消规则标签

                    public String getCancelDescription() {
                        return CancelDescription;
                    }

                    public void setCancelDescription(String cancelDescription) {
                        CancelDescription = cancelDescription;
                    }

                    public int getCancelType() {
                        return CancelType;
                    }

                    public void setCancelType(int cancelType) {
                        CancelType = cancelType;
                    }

                    public boolean isLadderVouch() {
                        return LadderVouch;
                    }

                    public void setLadderVouch(boolean ladderVouch) {
                        LadderVouch = ladderVouch;
                    }

                    public List<LadderParse> getLadderParseList() {
                        return LadderParseList;
                    }

                    public void setLadderParseList(List<LadderParse> ladderParseList) {
                        LadderParseList = ladderParseList;
                    }

                    public String getCancelTag() {
                        return CancelTag;
                    }

                    public void setCancelTag(String cancelTag) {
                        CancelTag = cancelTag;
                    }
                }

                public static class LadderParse {
                    private long BeginTime;//此时间点之前免费取消
                    private long EndTime;//此时间点之后不可取消
                    private int CutType;//扣费类型
                    private BigDecimal CutValue;//扣费值(原始币种)
                    private BigDecimal Amount;//扣费值(国际现付的是原币，预付对客的是人民币，预付对酒店的是原币。)
                    private String ShortDesc;//短文案
                    private BigDecimal AmountRmb;//扣费值(人民币)
                    private BigDecimal ExchangeRate;//汇率

                    public long getBeginTime() {
                        return BeginTime;
                    }

                    public void setBeginTime(long beginTime) {
                        BeginTime = beginTime;
                    }

                    public long getEndTime() {
                        return EndTime;
                    }

                    public void setEndTime(long endTime) {
                        EndTime = endTime;
                    }

                    public int getCutType() {
                        return CutType;
                    }

                    public void setCutType(int cutType) {
                        CutType = cutType;
                    }

                    public BigDecimal getCutValue() {
                        return CutValue;
                    }

                    public void setCutValue(BigDecimal cutValue) {
                        CutValue = cutValue;
                    }

                    public BigDecimal getAmount() {
                        return Amount;
                    }

                    public void setAmount(BigDecimal amount) {
                        Amount = amount;
                    }

                    public String getShortDesc() {
                        return ShortDesc;
                    }

                    public void setShortDesc(String shortDesc) {
                        ShortDesc = shortDesc;
                    }

                    public BigDecimal getAmountRmb() {
                        return AmountRmb;
                    }

                    public void setAmountRmb(BigDecimal amountRmb) {
                        AmountRmb = amountRmb;
                    }

                    public BigDecimal getExchangeRate() {
                        return ExchangeRate;
                    }

                    public void setExchangeRate(BigDecimal exchangeRate) {
                        ExchangeRate = exchangeRate;
                    }
                }

                public static class NightlyRatesBean {
                    /**
                     * Member : 1000
                     * Cost : -1
                     * Status : true
                     * AddBed : -1
                     * Date : 2017-03-21T00:00:00 08:00
                     * BreakfastCount : 0
                     * coupon : 0
                     */

                    private double Member;//Member
                    private int Cost;//结算价
                    private boolean Status;//库存状态
                    private int AddBed;//加床价
                    private java.util.Date Date;//当天日期
                    private int BreakfastCount;//早餐数量
                    private int coupon;//每日优惠
                    private BigDecimal Basis;//原始价格

                    public double getMember() {
                        return Member;
                    }

                    public void setMember(double member) {
                        Member = member;
                    }

                    public int getCost() {
                        return Cost;
                    }

                    public void setCost(int Cost) {
                        this.Cost = Cost;
                    }

                    public boolean isStatus() {
                        return Status;
                    }

                    public void setStatus(boolean Status) {
                        this.Status = Status;
                    }

                    public int getAddBed() {
                        return AddBed;
                    }

                    public void setAddBed(int AddBed) {
                        this.AddBed = AddBed;
                    }

                    public java.util.Date getDate() {
                        return Date;
                    }

                    public void setDate(java.util.Date date) {
                        Date = date;
                    }

                    public int getBreakfastCount() {
                        return BreakfastCount;
                    }

                    public void setBreakfastCount(int BreakfastCount) {
                        this.BreakfastCount = BreakfastCount;
                    }

                    public int getCoupon() {
                        return coupon;
                    }

                    public void setCoupon(int coupon) {
                        this.coupon = coupon;
                    }

                    public BigDecimal getBasis() {
                        return Basis;
                    }

                    public void setBasis(BigDecimal basis) {
                        Basis = basis;
                    }
                }


                public static class Meals {
                    private String mealCopyWriting;

                    public String getMealCopyWriting() {
                        return mealCopyWriting;
                    }

                    public void setMealCopyWriting(String mealCopyWriting) {
                        this.mealCopyWriting = mealCopyWriting;
                    }
                }

                /**
                 * PromotionId	促销活动Id
                 * PromotionTag	促销活动标签
                 */
                public static class PromotionFlagBean {
                    private long PromotionId;
                    private String PromotionTag;

                    public long getPromotionId() {
                        return PromotionId;
                    }

                    public void setPromotionId(long promotionId) {
                        PromotionId = promotionId;
                    }

                    public String getPromotionTag() {
                        return PromotionTag;
                    }

                    public void setPromotionTag(String promotionTag) {
                        PromotionTag = promotionTag;
                    }
                }
            }
        }

        public static class DetailBean {
            private String HotelName;
            private int StarRate;
            private int Category;
            private String Latitude;
            private String Longitude;
            private String Address;
            private String Phone;
            private String ThumbNailUrl;
            private String City;
            private String CityName;
            private String District;
            private String DistrictName;
            private String BusinessZone;
            private String BusinessZoneName;
            private List<ReviewBean> Review;
            private String Features;
            private String GeneralAmenities;
            private String Traffic;
            private String Description;
            private String HotelNameEn;
            private String AddressEn;
            private String CheckInTime;
            private String CheckOutTime;
            private String HotelCountryName;
            private String HotelCountryCode;
            private int HotelCountryId;
            private String HotelPolicy;

            public String getHotelName() {
                return HotelName;
            }

            public void setHotelName(String hotelName) {
                HotelName = hotelName;
            }

            public int getStarRate() {
                return StarRate;
            }

            public void setStarRate(int starRate) {
                StarRate = starRate;
            }

            public int getCategory() {
                return Category;
            }

            public void setCategory(int category) {
                Category = category;
            }

            public String getLatitude() {
                return Latitude;
            }

            public void setLatitude(String latitude) {
                Latitude = latitude;
            }

            public String getLongitude() {
                return Longitude;
            }

            public void setLongitude(String longitude) {
                Longitude = longitude;
            }

            public String getAddress() {
                return Address;
            }

            public void setAddress(String address) {
                Address = address;
            }

            public String getPhone() {
                return Phone;
            }

            public void setPhone(String phone) {
                Phone = phone;
            }

            public String getThumbNailUrl() {
                return ThumbNailUrl;
            }

            public void setThumbNailUrl(String thumbNailUrl) {
                ThumbNailUrl = thumbNailUrl;
            }

            public String getCity() {
                return City;
            }

            public void setCity(String city) {
                City = city;
            }

            public String getCityName() {
                return CityName;
            }

            public void setCityName(String cityName) {
                CityName = cityName;
            }

            public String getDistrict() {
                return District;
            }

            public void setDistrict(String district) {
                District = district;
            }

            public String getDistrictName() {
                return DistrictName;
            }

            public void setDistrictName(String districtName) {
                DistrictName = districtName;
            }

            public String getBusinessZone() {
                return BusinessZone;
            }

            public void setBusinessZone(String businessZone) {
                BusinessZone = businessZone;
            }

            public String getBusinessZoneName() {
                return BusinessZoneName;
            }

            public void setBusinessZoneName(String businessZoneName) {
                BusinessZoneName = businessZoneName;
            }

            public List<ReviewBean> getReview() {
                return Review;
            }

            public void setReview(List<ReviewBean> review) {
                Review = review;
            }

            public String getFeatures() {
                return Features;
            }

            public void setFeatures(String features) {
                Features = features;
            }

            public String getGeneralAmenities() {
                return GeneralAmenities;
            }

            public void setGeneralAmenities(String generalAmenities) {
                GeneralAmenities = generalAmenities;
            }

            public String getTraffic() {
                return Traffic;
            }

            public void setTraffic(String traffic) {
                Traffic = traffic;
            }

            public String getDescription() {
                return Description;
            }

            public void setDescription(String description) {
                Description = description;
            }

            public String getHotelNameEn() {
                return HotelNameEn;
            }

            public void setHotelNameEn(String hotelNameEn) {
                HotelNameEn = hotelNameEn;
            }

            public String getAddressEn() {
                return AddressEn;
            }

            public void setAddressEn(String addressEn) {
                AddressEn = addressEn;
            }

            public String getCheckInTime() {
                return CheckInTime;
            }

            public void setCheckInTime(String checkInTime) {
                CheckInTime = checkInTime;
            }

            public String getCheckOutTime() {
                return CheckOutTime;
            }

            public void setCheckOutTime(String checkOutTime) {
                CheckOutTime = checkOutTime;
            }

            public String getHotelCountryName() {
                return HotelCountryName;
            }

            public void setHotelCountryName(String hotelCountryName) {
                HotelCountryName = hotelCountryName;
            }

            public String getHotelCountryCode() {
                return HotelCountryCode;
            }

            public void setHotelCountryCode(String hotelCountryCode) {
                HotelCountryCode = hotelCountryCode;
            }

            public int getHotelCountryId() {
                return HotelCountryId;
            }

            public void setHotelCountryId(int hotelCountryId) {
                HotelCountryId = hotelCountryId;
            }

            public String getHotelPolicy() {
                return HotelPolicy;
            }

            public void setHotelPolicy(String hotelPolicy) {
                HotelPolicy = hotelPolicy;
            }

            public static class ReviewBean {
                private int Good;
                private int Poor;
                private int Count;
                private String Score;

                public int getGood() {
                    return Good;
                }

                public void setGood(int good) {
                    Good = good;
                }

                public int getPoor() {
                    return Poor;
                }

                public void setPoor(int poor) {
                    Poor = poor;
                }

                public int getCount() {
                    return Count;
                }

                public void setCount(int count) {
                    Count = count;
                }

                public String getScore() {
                    return Score;
                }

                public void setScore(String score) {
                    Score = score;
                }
            }
        }

        public static class GiftsBean {
            /**
             * GiftId : 1128
             * StartDate : 2017-03-20T00:00:00 08:00
             * EndDate : 2017-03-20T00:00:00 08:00
             * DateType : CheckinDate
             * WeekSet : 1,2,3,4,5,6,7
             * GiftContent : 礼包测试
             * GiftTypes :
             * HourNumber : 0
             * HourType : Hours24
             * WayOfGiving : EveryRoom
             * WayOfGivingOther :
             * Description : 2016年08月01日至2017年08月31日期间入住，每间房包含一次：礼包测试
             */

            private long GiftId;
            private String StartDate;
            private String EndDate;
            private String DateType;
            private String WeekSet;
            private String GiftContent;
            private String GiftTypes;
            private int HourNumber;
            private String HourType;
            private String WayOfGiving;
            private String WayOfGivingOther;
            private String Description;

            public long getGiftId() {
                return GiftId;
            }

            public void setGiftId(long GiftId) {
                this.GiftId = GiftId;
            }

            public String getStartDate() {
                return StartDate;
            }

            public void setStartDate(String StartDate) {
                this.StartDate = StartDate;
            }

            public String getEndDate() {
                return EndDate;
            }

            public void setEndDate(String EndDate) {
                this.EndDate = EndDate;
            }

            public String getDateType() {
                return DateType;
            }

            public void setDateType(String DateType) {
                this.DateType = DateType;
            }

            public String getWeekSet() {
                return WeekSet;
            }

            public void setWeekSet(String WeekSet) {
                this.WeekSet = WeekSet;
            }

            public String getGiftContent() {
                return GiftContent;
            }

            public void setGiftContent(String GiftContent) {
                this.GiftContent = GiftContent;
            }

            public String getGiftTypes() {
                return GiftTypes;
            }

            public void setGiftTypes(String GiftTypes) {
                this.GiftTypes = GiftTypes;
            }

            public int getHourNumber() {
                return HourNumber;
            }

            public void setHourNumber(int HourNumber) {
                this.HourNumber = HourNumber;
            }

            public String getHourType() {
                return HourType;
            }

            public void setHourType(String HourType) {
                this.HourType = HourType;
            }

            public String getWayOfGiving() {
                return WayOfGiving;
            }

            public void setWayOfGiving(String WayOfGiving) {
                this.WayOfGiving = WayOfGiving;
            }

            public String getWayOfGivingOther() {
                return WayOfGivingOther;
            }

            public void setWayOfGivingOther(String WayOfGivingOther) {
                this.WayOfGivingOther = WayOfGivingOther;
            }

            public String getDescription() {
                return Description;
            }

            public void setDescription(String Description) {
                this.Description = Description;
            }
        }
    }

    public List<RegionResult> RegionResult;
}
